//package com.ruoyi.common.utils;/**
// * Created by NINGMEI on 2024/1/24.
// */
//
//import cn.dev33.satoken.stp.StpInterface;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.ruoyi.common.core.domain.model.MpLoginUser;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.cache.annotation.Cacheable;
//import org.springframework.stereotype.Component;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @Author NINGMEI
// * @Date 2024/1/24 17:53
// * @Description
// */
//@Component
//public class SaTokenUtil implements StpInterface {
//    @Override
//    @Cacheable(value = "PermissionList")
//    public List<String> getPermissionList(Object o, String loginType) {
//
//        List<String> list = new ArrayList<>();
//        Long roleId = Long.valueOf(o.toString());
//        MpLoginUser role = getTypeById(roleId);
//
//        if(role==null){
//            // 游客登录
//            return list;
//        }
//        int type = role.getType();
//        if(type==1){
//            // 管理员
//            //添加“新增员工”权限
//            list.add("admin:addEmployee");
//            //添加“编辑内容”权限
//            list.add("admin:edit");
//        }
//        else if(type==2){
//            //员工权限
//
//            // 查询编辑权限
//            Integer isEdit = role.getIsEdit();
//            if(isEdit==1){
//                list.add("admin:edit");
//            }
//        }
//
//        return list;
//    }
//
//    //添加某些角色可以访问的
//    @Override
//    @Cacheable(value = "RoleList")
//    public List<String> getRoleList(Object o, String loginType) {
//        List<String> list = new ArrayList<>();
//
//        Long roleId = Long.valueOf(o.toString());
//        MpLoginUser role = getTypeById(roleId);
//
//        String name ;
//        if(role!=null){
//            // 已存在的用户
//            Integer type = role.getType();
//            name = roleService.getById(type).getName();
//        }else {
//            //游客
//            name = roleService.getById(NOLOGIN_TYPE).getName();
//        }
//        list.add(name);
//
//        return list;
//    }
//
//    private MpLoginUser getTypeById(Long id) {
//        LambdaQueryWrapper<MpLoginUser> wrapper = new LambdaQueryWrapper<>();
//        wrapper.eq(MpLoginUser::getUserId, id);
//        MpLoginUser role = roleMappingService.getOne(wrapper);
//        return role;
//    }
//}
